В области компьютерных систем конкурентность на уровне приложения означает преднамеренное перекрытие логических потоков управления для повышения производительности и отзывчивости. Это функциональная абстракция: программа разбивается на независимые задачи, которые могут выполняться поочередно или параллельно.
1. Классификация параллелизма
Разработчики обычно выбирают между тремя основными механизмами для управления этими конкурентными потоками:
- Процессы: Высокая изоляция с отдельными адресными пространствами; требует взаимодействия через ядро.
- Мультиплексирование ввода-вывода: Один поток вручную переключается между событиями «готовности» (состояниями).
- Потоки: Легковесные потоки, разделяющие одно виртуальное адресное пространство для простого обмена данными.
2. Логическое и физическое выполнение
Хотя все параллельные программы являются конкурентными, не все конкурентные программы являются параллельными. Параллелизм — это физическое выполнение потоков на отдельных аппаратных ядрах. Конкурентность — это логическая структура, которая позволяет такому выполнению происходить.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>